package com.example.demo.aop;

import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

/**
 * Created with IntelliJ IEDA.
 * Description:
 * User:86186
 * Date:2023-08-10
 * Time:15:53
 */

@Aspect // 声明这是一个切面类
@Component// 随着框架的启动而启动
public class UserAspect {

    /**
     * 切点(配置拦截规则的) 拦截com.example.controll.UerController中的所有方法
     */
    @Pointcut("execution(* com.example.controll.UerController.(..))")
    public void pointcut(){

    }

    /**
     * 前置通知
     * 这个通知是针对于pointcut这个拦截规则的
     */
    @Before("pointcut()")
    public void beforeAdvice(){
        System.out.println("执行了前置通知");
    }
    /**
     * 后置通知
     * 这个通知是针对于pointcut这个拦截规则的
     */
    @After("pointcut()")
    public void afterAdvice(){
        System.out.println("执行了后置通知");
    }
}


















